3 research outputs found

    Multi-scale geometry interpolation

    Get PDF
    Interpolating vertex positions among triangle meshes with identical vertex-edge graphs is a fundamental part of many geometric modelling systems. Linear vertex interpolation is robust but fails to preserve local shape. Most recent approaches identify local affine transformations for parts of the mesh, model desired interpolations of the affine transformations, and then optimize vertex positions to conform with the desired transformations. However, the local interpolation of the rotational part is non-trivial for more than two input configurations and ambiguous if the meshes are deformed significantly. We propose a solution to the vertex interpolation problem that starts from interpolating the local metric (edge lengths) and mean curvature (dihedral angles) and makes consistent choices of local affine transformations using shape matching applied to successively larger parts of the mesh. The local interpolation can be applied to any number of input vertex configurations and due to the hierarchical scheme for generating consolidated vertex positions, the approach is fast and can be applied to very large meshes

    Abbildung sequentieller C-Programme auf parallel arbeitende Zellularautomaten

    Get PDF
    Single-Core Prozessorsysteme werden in der Gegenwart zunehmend von Multi- Core Architekturen abgelöst.Während bis zu Beginn der 2000er Jahre parallele Architekturen hauptsächlich in wissenschaftlichen und industriellen Großrechnern eingesetzt wurden, findet man heute in vielen verschiedenen Gerätetypen Multi-Core Prozessoren - angefangen bei Heimcomputern bzw. Arbeitsplatzrechnern, über Smartphones und Tablets bis hin zu eingebetteten Systemen in Fahrzeugen. Ein Problem paralleler Architekturen besteht aus der Sicht von Softwareentwicklern in der, verglichen mit Single-Core Systemen, aufwändigen Programmierung. Zur effizienten Ausnutzung aller zur Verfügung stehenden Ressourcen müssen Konzepte erarbeitet werden, die einerseits möglichst viele Berechnungen parallel durchführen, andererseits keine Fehler aufgrund von Dateninkonsistenzen zwischen den Recheneinheiten erzeugen. Hinzu kommt, dass zur Programmierung verschiedener paralleler Architekturen unterschiedliche Konzepte angewendet und voneinander abweichende Programmiermodelle eingesetzt werden müssen. Ein höherer Entwicklungsaufwand und zusätzlichen Kosten bei der Erstellung von Software sind Folgen davon. Die vorliegende Arbeit widmet sich der Lösung dieser Probleme und bietet Lösungsansätze für zukünftige Untersuchungen. Es wird ein Verfahren zur Abbildung sequentieller Algorithmen, geschrieben in der Programmiersprache C, auf ein Modell vorgestellt, das auf Zellularautomaten basiert. Die Zellen des Modells und ihre Verbindungen untereinander stellen eine Repräsentation des kompilierten Algorithmus dar und sind in der Lage, diesen durch Bearbeitung von Teilaufgaben und Kommunikation untereinander auszuwerten. Das entwickelte System ist selbstsynchronisierend, das bedeutet, die Zellen können parallel verarbeitet werden und beachten selbständig die durch den Algorithmus implizit vorgegebenen Datenabhängigkeiten. Im Gegensatz zu anderen bereits existierenden Verfahren ist die übersetzung der Algorithmen nicht auf eine bestimmte Zielarchitektur ausgerichtet. Die aus den Algorithmen generierten Zellularautomaten können auf verschiedene parallele Architekturen übertragen und auf diesen Systemen ausgewertet werden. Zur Bearbeitung der generierten Zellularautomaten sind sowohl Multi-Core CPU-Systeme, Many-Core GPU-Systeme als auch FPGAs einsetzbar. In der Arbeit werden Verfahren zur übertragung und Auswertung auf die genannten Architekturen beschrieben sowie experimentelle Vergleiche zur Performance der Zellularautomaten auf den verschiedenen Systemen vorgestellt.Single-core processor systems are nowadays more and more replaced by multicore architectures. At the beginning of the 21st century parallel architectures were mainly used for scientific and industrial mainframes. Today they can be found in many different systems and devices - from personal computers and workstations through smartphones and tablets to embedded systems in cars and other vehicles. One of the main problems for software developers is the complex programming of parallel architectures compared to single-core systems. To efficiently use the capacity of all available resources it is necessary to develop concepts, that do as many computations as possible in parallel but avoid errors that are caused by data inconsistencies. Additionally the different parallel architectures aren't compatible. Each parallel architecture requires the use of a special concept and programming model. Consequences of this heterogeneity are higher development times and higher costs for new software. The present thesis occupies the solution of these problems and illustrates methods for the resolution of future investigations. A method for mapping sequential algorithms, written in the C programming language, to a cellular automata based model is explained. The cells and the connections to their neighbours are a representation of the compiled algorithm and are able to evaluate the algorithm by performing subtasks and communicating to other cells. The developed system is self-synchronizing, meaning that all cells can do their work in parallel and taking care of implicitly given data dependencies from the original algorithm. In contrast to existing techniques the presented approach isn't focused on one specific target architecture. The generated cellular automata can be mapped to different parallel architectures and then be evaluated on these systems. Multi-core CPU systems, many-core GPU systems and FPGAs can be used to handle the generated cellular automata. The present thesis describes methods for transferring and evaluating the generated cellular automata on the named parallel architectures. Furthermore experimental comparisons between the performance of the execution on the different target systems are illustrated
    corecore